import axios from 'axios';

class QwenService {
    constructor() {
        // 使用本地后端代理
        this.baseURL = (import.meta.env.VITE_APP_API_BASE_URL || 'http://localhost:8000') + '/api/chat/qwen'; // 使用后端代理
    }

    /**
     * 发送消息到通义千问
     * @param {Array} messages - 消息历史记录数组
     * @param {string} model - 模型名称，默认为qwen-plus
     * @returns {Promise} 返回API响应
     */
    async sendMessage(messages, model = "qwen-plus") {
        try {
            const response = await axios.post(`${this.baseURL}`, {
                model: model,
                messages: messages
            });
             console.log("qwenUrl:",`${this.baseURL}`);

            return {
                success: true,
                data: response.data.result
            };
        } catch (error) {
            console.error("通义千问API错误:", error);
            return {
                success: false,
                error: error.response?.data?.message || error.message,
                hint: "请检查API配置或网络连接"
            };
        }
    }

    /**
     * 创建一个新的对话
     * @param {string} userMessage - 用户消息
     * @param {string} systemPrompt - 系统提示信息
     * @returns {Promise} 返回API响应
     */
    async createChat(userMessage, systemPrompt = "You are a helpful assistant.") {
        const messages = [
            { role: "system", content: systemPrompt },  //默认系统提示
            { role: "user", content: userMessage }  //用户消息
        ];
        return this.sendMessage(messages);
    }

    /**
     * 继续现有对话
     * @param {Array} messageHistory - 现有对话历史
     * @param {string} newMessage - 新的用户消息
     * @returns {Promise} 返回API响应
     */
    async continueChat(messageHistory, newMessage) {
        const messages = [
            ...messageHistory,
            { role: "user", content: newMessage }
        ];
        return this.sendMessage(messages);
    }
}

// 创建单例实例
const qwenService = new QwenService();
export default qwenService;